<?php
require_once('FonteDAO.php');

class Rateio
{
     private $id;            // Chave-prim�ria do rateio  cadastrada no banco de dados
     private $campus;   // Chave-estrangeira do campus ao qual o rateio  est� associada.
     private $fonte;   // Chave-estrangeira da fonte ao qual o rateio  est� associada.
     private $tipoDespesa;   // Tipo de despesa da fonte podendo ser 1 - Corrente ou 2 - Capital
     private $valorCorrente;         // Valor desse Rateio
     private $valorTotal;         // Valor total da fonte
     private $dao;           // Objeto para acesso ao banco de dados

     public function __set( $var, $val )
     {
            $this->$var = $val;
     }

     public function __get( $var )
     {
            return $this->$var;
     }

     public function __construct( $id = NULL, $campus = NULL, $fonte=NULL, $tipoDespesa = NULL, $valorCorrente=NULL, $valorTotal=NULL)
     {
            $this->id = $id;
            $this->campus = $campus;
            $this->fonte = $fonte;
            $this->tipoDespesa = $tipoDespesa;
            $this->valorCorrente = $valorCorrente;
            $this->valorTotal = $valorTotal;
            $this->dao = new RateioDAO();
     }

     public function CadastrarRateio()
     {
     	$resultado = $this->dao->CadastrarRateio($this);
     	return $resultado;
     }
     
     public function AlterarRateio()
     {
     	$resultado = $this->dao->AlterarRateio($this);
     	return $resultado;
     }
     
     public function ExcluirRateio( $rateioId )
     {
     	$resultado = $this->dao->ExcluirRateio( $rateioId );
     	return $resultado;	
     }
     
     /**
     Busca na tabela t_rateio pelo registro de chave-prim�ria $id.
     @id - Chave-prim�ria de rateio cadastrada no banco de dados.
     @return - Retorna um objeto do tipo Rateio com todos os valores das colunas associadas ao registro. Caso n�o encontre nenhum registro retorna FALSE.
     */
     public function CarregarRateio( $id )
     {
            $resultado = $this->dao->LoadRateio( $id );
            return $resultado;
     }
     
     public function getSaldoFonte( $fonteId )
     {
     	$resultado = $this->dao->LoadSaldo( $fonteId );
     	return $resultado;
     }
     
     public function getSaldoRateio( $fonteId, $campusId)
     {
     	$resultado = $this->dao->LoadSaldoPorCampus($fonteId, $campusId);
     	return $resultado;
     }
     
     public function CarregarRateioPorFonte( $fonteId )
     {
     	$resultado = $this->dao->LoadRateiosPorFonte( $fonteId );
     	return $resultado;
     }
     
     public function CarregarRateioPorPrograma( $programaId, $tipoDespesa )
     {
     	$resultado = $this->dao->LoadRateiosPorPrograma( $programaId, $tipoDespesa );
     	return $resultado;
     }
     
     public function CarregarRateioPorCampus($fonteId, $campusId)
     {
     	$resultado = $this->dao->CarregarRateioPorCampus($fonteId, $campusId);
     	return $resultado;
     }
     
     public function debitarValorCorrente($valor){
     	$resultado = $this->dao->debitarValorCorrente($valor, $this->id);
     	return $resultado;
     }
     
     public function creditarValorCorrente($valor){
      	$resultado = $this->dao->creditarValorCorrente($valor, $this->id);
     	return $resultado;
     }
     
}
?>